$(function() {
	var validate = $("#form").bootstrapValidator({
		feedbackIcons : {
			valid : 'glyphicon glyphicon-ok',
			invalid : 'glyphicon glyphicon-remove',
			validating : 'glyphicon glyphicon-refresh'
		},
		fields : {
			source : {
				validators : {
					notEmpty : {
						message : '任务来源不能为空'
					}
				}
			},
			name : {
				validators : {
					notEmpty : {
						message : '任务名称不能为空'
					}
				}
			},
			type : {
				validators : {
					notEmpty : {
						message : '任务类型不能为空'
					}
				}
			},
			sszb : {
				validators : {
					notEmpty : {
						message : '所属组别不能为空'
					}
				}
			},
			optUser : {
				validators : {
					notEmpty : {
						message : '处理人员不能为空'
					}
				}
			},
			earlyStartStr : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					notEmpty : {
						message : '计划开始时间不能为空'
					},
					callback : {
						message : '计划开始日期不能大于计划结束日期',
						callback : function(value, validator, $field, options) {
							var end = $('#earlyFinishStr').val();
							return value <= end;
						}
					}
				}
			},
			earlyFinishStr : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					notEmpty : {
						message : '计划结束时间不能为空'
					},
					callback : {
						message : '计划开始日期不能大于计划结束日期',
						callback : function(value, validator, $field, options) {
							var begin = $('#earlyStartStr').val();
							return begin <= value;
						}
					}
				}
			},
			lateStartStr : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					callback : {
						message : '实际开始日期不能大于实际结束日期或实际开始日期不能为空',
						callback : function(value, validator, $field, options) {
							var end = $('#lateFinishStr').val();
							if (end == "") {
								return true;
							}
							if (value == "") {
								return false;
							}
							return value <= end;
						}
					}
				}
			},
			lateFinishStr : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					callback : {
						message : '实际开始日期不能大于实际结束日期或实际开始日期不能为空',
						callback : function(value, validator, $field, options) {
							if (value == "") {
								return true;
							}
							var begin = $('#lateStartStr').val();
							if (begin == "") {
								return false;
							}
							return begin <= value;
						}
					}
				}
			},
			versionDateStr : {
				validators : {
					date : {
						format : 'YYYY-MM-DD',
						message : '日期格式不正确'
					},
					callback : {
						message : '实际版本号不能为空',
						callback : function(value, validator, $field, options) {
							var lateVersion = $('#lateVersion').val();

							if (value != "" && lateVersion == "") {
								return false;
							}
							return true;
						}
					}
				}
			},
			lateVersion : {
				validators : {
					callback : {
						message : '实际版本发布日期不能为空',
						callback : function(value, validator, $field, options) {
							var versionDateStr = $('#versionDateStr').val();
							if (value != "" && versionDateStr == "") {
								return false;
							}
							return true;
						}
					}
				}
			}
		}
	});

	$('.form_date').datetimepicker({
		language : 'zh-CN',
		weekStart : 1,
		todayBtn : 1,
		autoclose : 1,
		todayHighlight : 1,
		startView : 2,
		minView : 2,
		forceParse : 0
	});
	$(".js-example-basic-single").select2();

	$("#form").submit(function(ev) {
		ev.preventDefault();
	});

	$("#submit")
			.on(
					"click",
					function() {
						var bootstrapValidator = $("#form").data(
								'bootstrapValidator');
						bootstrapValidator.resetForm();
						bootstrapValidator.validate();
						if (bootstrapValidator.isValid()) {
							var x = $("#form").serializeArray();
							$
									.post(
											"/task/editSave",
											x,
											function(data, status) {
												if (data == "ok") {
													var dialog = BootstrapDialog
															.show({
																title : '提示',
																message : "提交成功",
																buttons : [ {
																	label : "确定",
																	cssClass : "btn-primary", // 给按钮添加类名
																	action : function(
																			dialog) { // 给当前按钮添加点击事件
																		try {
																			parent
																					.$(
																							"#table")
																					.bootstrapTable(
																							'refresh');
																			dialog
																					.close();
																			var index = parent.layer
																					.getFrameIndex(window.name); // 获取窗口索引
																			parent.layer
																					.close(index);// 关闭弹出的子页面窗口
																		} catch (error) {
																			dialog
																					.close();
																			var index = parent.layer
																					.getFrameIndex(window.name); // 获取窗口索引
																			parent.layer
																					.close(index);// 关闭弹出的子页面窗口
																			parent
																					.$(
																							"#task_"
																									+ $(
																											"#id")
																											.val())
																					.closest(
																							"li")
																					.remove();
																		}
																	}
																} ]
															});
												} else {
													var dialog = BootstrapDialog
															.show({
																title : '提示',
																message : data,
																buttons : [ {
																	label : "确定",
																	cssClass : "btn-primary", // 给按钮添加类名
																	action : function(
																			dialog) { // 给当前按钮添加点击事件
																		dialog
																				.close();
																	}
																} ]
															});
												}
											});
						} else {
						}
						return;

					});
	$("#source").select2().on('change', function() {
		// 這裡呼叫回調並傳入現在選取的 value
		var source = this.value;
		if (source == "问题管理平台") {
			$("#problemId").attr("disabled", false);
			$("#type").val("问题修复");
			$("#type").trigger('change');
			$("#queryProblemId").click(function() {
				layer.open({
					type : 2,
					skin : 'layui-layer-rim', // 加上边框
					area : [ '893px', '600px' ],
					content : '/problem/queryProblemUndone'
				});
			});

		} else {
			$("#type").val("功能开发");
			$("#type").trigger('change');
			$("#problemId").val("");
			$("#problemId").attr("disabled", true);
			$("#queryProblemId").unbind("click");
		}
	});
	var sszbSelect = $("#sszb").select2().on('change', function() {
		var optUser = $("#optUser").select2();
		var sszb = this.value;
		$.post("/user/getUsers", {
			"sszb" : sszb
		}, function(data, status) {
			$("#optUser").empty();
			for (var i = 0; i < data.list.length; i++) {
				var d = data.list[i];
				var option;
				if (d.id == $("#optUserInit").val()) {
					option = new Option(d.fullName, d.id, true, true);
				} else {
					option = new Option(d.fullName, d.id, false, false);
				}
				optUser.append(option);
			}
			optUser.trigger('change');
		});
	});

	$("#source").change();
	$("#sszb").change();
});
